#ifndef RPATHPLLAN_ASTAR_H
#define RPATHPLLAN_ASTAR_H

#include "RMap.h" // 假设RMap类的头文件
#include "RRangeScan.h" // 假设RRangeScan类的头文件

namespace rtk {

// 定义节点结构
struct Node {
    int x;
    int y;
    double g;  // 从起始点到该节点的实际代价
    double h;  // 从该节点到目标点的估计代价
    double f;  // f = g + h
    Node* parent;
    Node(int _x, int _y) : x(_x), y(_y), g(0), h(0), f(0), parent(nullptr) {}
};

class RPathPlan_astar {
public:
    RPathPlan_astar();
    ~RPathPlan_astar();
    int pathPlan();
    int planBeg();
    int planStep();
    int planStepBackward();

private:
    RRangeScan m_scan;
    RMap* m_map();
};

} // namespace rtk

#endif